package com.tanjun.mallservice.web.controller.plu;

import com.tanjun.common.annotation.Edit;
import com.tanjun.common.model.PageInfoDto;
import com.tanjun.common.model.R;
import com.tanjun.mallservice.apiservice.request.plu.MallPluVo;
import com.tanjun.mallservice.apiservice.request.plu.PluIdVo;
import com.tanjun.mallservice.apiservice.request.plu.QueryPageMallPluVo;
import com.tanjun.mallservice.apiservice.response.plu.MallPluDto;
import com.tanjun.mallservice.apiservice.response.plu.PluDetailDto;
import com.tanjun.mallservice.web.biz.MallPluBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import static com.tanjun.common.constants.UrlConstant.URL_AUTH.OPEN;

@RestController
public class MallPluController {
    private final String PREX = "/plu";
    @Autowired
    private MallPluBiz mallPluBiz;

    /**
     * 获取商品详细信息
     *
     * @param paramVo
     * @return
     */
    @PostMapping(OPEN + PREX + "/getPluDetail")
    public R<PluDetailDto> getPluDetail(@RequestBody @Validated PluIdVo paramVo) {
        return R.OK(mallPluBiz.getDetailPlu(paramVo));
    }

    @PostMapping(OPEN + PREX + "/addPlu")
    public R addPlu(@RequestBody @Validated MallPluVo paramVo) {
        mallPluBiz.addPlu(paramVo);
        return R.OK();
    }

    @PostMapping(OPEN + PREX + "/updatePlu")
    public R updatePlu(@RequestBody @Validated(value = {Edit.class}) MallPluVo paramVo) {
        mallPluBiz.updatePlu(paramVo);
        return R.OK();
    }

    @PostMapping(OPEN + PREX + "/listPagePlu")
    public R<PageInfoDto<MallPluDto>> listPagePlu(@RequestBody @Validated QueryPageMallPluVo paramVo) {
        return R.OK(mallPluBiz.listPagePlu(paramVo));
    }
}
